<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="stf6x" id="stf6x"><span data-lake-id="u744e7219" id="u744e7219">典型回答</span></h1>
  <p data-lake-id="u7f93fa67" id="u7f93fa67"><br></p>
  <p data-lake-id="u2a67ef06" id="u2a67ef06"><span data-lake-id="ud40677bd" id="ud40677bd">rabbitMQ一共有6种工作模式（消息分发方式）分别是简单模式、工作队列模式、发布订阅模式、路由模式、主题模式以及RPC模式。</span></p>
  <p data-lake-id="u5c312a71" id="u5c312a71"><span data-lake-id="uee17a44b" id="uee17a44b">​</span><br></p>
  <p data-lake-id="uf392f0b9" id="uf392f0b9"><span data-lake-id="uac997023" id="uac997023">简单模式是最基本的工作模式，也是最简单的消息传递模式。在简单模式中，一个生产者将消息发送到一个队列中，一个消费者从队列中获取并处理消息。这种模式适用于单个生产者和单个消费者的简单场景，消息的处理是同步的。</span></p>
  <p data-lake-id="uf1fb7c6a" id="uf1fb7c6a"><span data-lake-id="u18980773" id="u18980773">​</span><br></p>
  <p data-lake-id="u69e10c9c" id="u69e10c9c"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1690624284380-66eada88-4d89-4ed9-93cd-627e3f93f56e.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_37%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="ubf4d885f" id="ubf4d885f"><span data-lake-id="u20f0adf9" id="u20f0adf9">​</span><br></p>
  <p data-lake-id="u25bb147e" id="u25bb147e"><span data-lake-id="u3767352f" id="u3767352f">工作队列模式用于实现一个任务在多个消费者之间的并发处理。在工作队列模式中，一个生产者将消息发送到一个队列中，多个消费者从队列中获取并处理消息。每个消息只能被一个消费者处理。这种模式适用于多个消费者并发处理消息的情况，提高了系统的处理能力和吞吐量。</span></p>
  <p data-lake-id="u0ebf2dd3" id="u0ebf2dd3"><span data-lake-id="u1ac6061c" id="u1ac6061c">​</span><br></p>
  <p data-lake-id="uff3e7d55" id="uff3e7d55"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1690624355141-ff0dc06e-2a75-4962-9c5c-35ba680eeaea.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_38%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="uff72d050" id="uff72d050"><br></p>
  <p data-lake-id="u0a22ff92" id="u0a22ff92"><span data-lake-id="ucf22617c" id="ucf22617c">发布/订阅模式用于实现一条消息被多个消费者同时接收和处理。在发布/订阅模式中，一个生产者将消息发送到交换器（Exchange）中，交换器将消息广播到所有绑定的队列，每个队列对应一个消费者。这种模式适用于消息需要被多个消费者同时接收和处理的广播场景，如日志订阅和事件通知等。</span></p>
  <p data-lake-id="u8762d9af" id="u8762d9af"><span data-lake-id="ua706576e" id="ua706576e">​</span><br></p>
  <p data-lake-id="u1533e516" id="u1533e516"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1691761653923-73c27264-2080-4a26-a3c8-513971f6b941.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_47%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u13a33047" id="u13a33047"><br></p>
  <p data-lake-id="u301b2d45" id="u301b2d45"><span data-lake-id="u4a66e309" id="u4a66e309">路由模式用于实现根据消息的路由键（Routing Key）将消息路由到不同的队列中。在路由模式中，一个生产者将消息发送到交换器中，并指定消息的路由键，交换器根据路由键将消息路由到与之匹配的队列中。这种模式适用于根据不同的条件将消息发送到不同的队列中，以实现消息的筛选和分发。</span></p>
  <p data-lake-id="ue7f7150d" id="ue7f7150d"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1690624635994-00378b54-2577-4dc5-b1de-f634f4a0a0fd.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_46%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u1e82abba" id="u1e82abba"><br></p>
  <p data-lake-id="u5fbc49ea" id="u5fbc49ea"><br></p>
  <p data-lake-id="u2dfb7b6a" id="u2dfb7b6a"><span data-lake-id="ud25ce14d" id="ud25ce14d">主题模式是一种更灵活的消息路由模式，它使用通配符匹配路由键，将消息路由到多个队列中。在主题模式中，一个生产者将消息发送到交换器中，并指定主题（Topic）作为路由键，交换器根据通配符匹配将消息路由到与之匹配的队列中。这种模式适用于消息的复杂路由需求，可以实现高度灵活的消息筛选和分发。</span></p>
  <p data-lake-id="u4e22c29b" id="u4e22c29b"><span data-lake-id="ua3d00027" id="ua3d00027">​</span><br></p>
  <p data-lake-id="u1f14be96" id="u1f14be96"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1690624641506-e406d7f9-3fba-43b5-ad66-10e23f05a8ae.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_48%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="ucb08a016" id="ucb08a016"><br></p>
  <p data-lake-id="u14ac0483" id="u14ac0483"><span data-lake-id="u49f878fc" id="u49f878fc">RPC模式是一种用于实现分布式系统中远程调用的工作模式。指的是通过rabbitMQ来实现一种RPC的能力。</span></p>
  <p data-lake-id="u96684ffc" id="u96684ffc"><span data-lake-id="u866747af" id="u866747af">​</span><br></p>
  <p data-lake-id="uc320b2a0" id="uc320b2a0"><span data-lake-id="u3dbd1a87" id="u3dbd1a87">​</span><br></p>
  <p data-lake-id="ub1edcb87" id="ub1edcb87"><span data-lake-id="u24563fc3" id="u24563fc3">这几种模式，根据不同的场景可以用不同的模式，每种模式的发送方及接收方的代码都不太一样，有的简单，有的复杂， 具体实现可以参考：</span><a href="https://www.rabbitmq.com/getstarted.html" target="_blank" data-lake-id="udbd64523" id="udbd64523"><span data-lake-id="u178393fb" id="u178393fb">https://www.rabbitmq.com/getstarted.html</span></a></p>
 </body>
</html>